package de.cachaca.lildancefreak.valerie;

import java.util.Arrays;

import com.sun.xml.internal.fastinfoset.algorithm.BuiltInEncodingAlgorithm.WordListener;

public class UtilValeriePierresKommentar {

	public static char[] reverse(char[] charArray) {
		
		char[] result = new char[charArray.length];
		int j = 0;
		
		for (int i = charArray.length-1; i >= 0; i--) {
			
			
			result[j] = charArray[i];
			j++;
			
		}
		
		// vollkommen in Ordnung - hier kannst Du Dir auch die Variable j sparen,
		// wenn du es so machst (so ists auch in UtilPierre gemacht)
		// aber so wie du es gemacht hast ist gut ... vielleicht gibt dir meine L�sung
		// noch neue erkenntnisse
		
		for (int i = 0; i < charArray.length; i++) {
			result[i] = charArray[charArray.length - 1 - i];
		}
		
		return result;
	}
	

	public static String reverse(String string) {
		
		// hier benutzt du eigentlich die gleiche L�sung wie in
		//		char[] reverse(char[] charArray)
		// siehe oben. Wenn Du das wirklich willst, dann w�re folgende L�sung einfacher:
		// 		return Util.reverse(string.toCharArray());
		//
		// ich wollte aber, da� Du hier ein bisschen in die String-Methoden
		// schaust und so sachen wie String Konkatenation und charAt verwendest
		// ... schau mal in meine L�sung in UtilPierre
		
		char[] tempChar = new char[string.length()];
		tempChar = string.toCharArray();
		char[] resultChar = new char [tempChar.length];
		String resultString;
		int j=0;
		
		for (int i = tempChar.length -1; i >= 0; i--) {
			
			resultChar [j] = tempChar[i];
			j++;
			
		}
		
		resultString = new String(resultChar);
		
		return resultString;
	}

	public static int[][] createKleinesEinmalEinsMatrix() {
		
		// sehr gut :-)
		
		int [][] ergebnis = new int[11][11];
				
				for (int ergZeile = 0; ergZeile < ergebnis.length; ergZeile++) {
					for (int ergSpalte = 0; ergSpalte < ergebnis.length; ergSpalte++) {
						ergebnis[ergZeile][ergSpalte] = ergZeile * ergSpalte;
					}
				}
		
		
		return ergebnis;
	}

	public static boolean isPalindrom(char[] word) {
		
		
		// spitzenidee :-)
		//
		// die nutzung vorhander Methoden ist immer die beste Wahl.
		//
		// und ganz prima, da� du die Arrays.equals-Methode gefunden hast 
		
		char [] vergleich = reverse(word);
		boolean ergebnis = false;
	
		ergebnis = Arrays.equals(word, vergleich);
		
		return ergebnis;
	}

}
